iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
AI 自動化

從 Cloud 到 AI:GCP 雲端資料與 AI 實戰之路系列 第 27 篇

Day 27|同一份儀表板,為什麼換了日期與篩選就像另一個答案?

  • 分享至 

  • xImage
  •  

1. 總數對得上,趨勢仍可能不同

Day 26 先替「告警觸發事件數」寫清楚定義,也規劃用 SQL 核對摘要卡。接下來,我想知道告警集中在哪些日子、Q17 是否持續出現相同問題。但把總數改成每日或每週,就多了新的判斷:事件要算在哪一天?一週從哪天開始?切換設備後,哪些圖應該跟著改變?

我先保留前一篇的去重方式與觸發事件定義,再處理時間與篩選,避免一次改動太多設定,最後不知道差異從哪裡來。以下仍是設備維運的設計情境,新增圖表與測試尚未經真實資料驗證。

2. 先決定圖上是哪一種時間

一筆事件可能同時有發生時間與寫入 BigQuery 的時間。如果設備事件隔天才到達,用寫入日期分組,就會把前一天的告警移到隔天。這張圖回答的是「資料何時進來」,並不是「告警何時發生」。

因此,設備趨勢頁採事件發生時間,寫入時間留給資料到達情況的檢查。若事件時間缺失,我會另列待確認數量,不直接拿寫入時間補上。

若 event_time 是 TIMESTAMP,我規劃在 BigQuery 用 DATE(event_time, 'Asia/Taipei') 取得台北日期,命名為 local_event_date。官方說明指出,從 TIMESTAMP 取日期而未指定時區時,預設使用 UTC。

這個差異在午夜附近尤其重要。我需要先確認原始時間如何保存,再固定時區與日期轉換;不能只把圖表日期的顯示格式改成中文,就當成已完成時區處理。

3. 週一起算,也不能省略跨年與部分週

改看每週趨勢時,我先選定星期一為週起日。BigQuery 的週起日期可用:

DATE_TRUNC(local_event_date, WEEK(MONDAY))

它把同週日期歸到該週星期一。我會用完整週起日期作為分組與標示,不只顯示「第幾週」,避免不同年份的週數混在一起。

若在 Data Studio(原 Looker Studio)新增計算欄位,則可用 DATETIME_TRUNC(local_event_date, ISOWEEK) 核對星期一起算的結果。官方文件中,WEEK 從星期日開始,ISOWEEK 從星期一開始,而且這個函式回傳 Date & Time 型別。因此,我還要核對來源型別與圖表使用方式,不能只看公式儲存成功。

另一個問題是範圍不完整。若先篩選某個月份,再按週彙總,月初與月底的週可能只留下部分日期。我會標示「所選範圍內的週統計」,並註明邊界週不完整,避免把部分週與完整週的差異解讀成告警改善。

4. 沒有事件的日期,先別畫成零

時序圖某天沒有資料,可能是沒有觸發事件,也可能是資料尚未到達或收集不完整。光靠事件表查不到紀錄,我無法區分這些情況。

官方時序圖提供 Line To Zero、Line Breaks 與 Linear Interpolation,分別讓缺日期落到零、顯示斷線,或連接前後資料點。這些是呈現選項,不是資料完整性的證據。

在沒有接收完整性證據時,我會保留缺口並標明未知,不用補零營造設備穩定的印象。只有確認該日資料完整,而且確實沒有觸發事件,才把零解讀為「沒有告警觸發紀錄」。即使如此,它也不能證明設備當天完全正常。

5. 日期控制可以一起動,日期意義卻不同

加入日期控制後,我最需要防止的誤會,是讀者以為同一頁的圖表都在看同一種時間。

官方日期控制可以影響不同來源的圖表,但各圖依自己的 Date Range Dimension,也就是用來篩選日期範圍的欄位運作。個別圖表的固定日期設定可以覆寫控制;把控制與圖表群組,也會限制作用範圍。

因此,我規劃設備頁的摘要卡與日、週趨勢,都以事件的台北日期篩選。若其他頁面日後使用回報日期或審核日期,就要明確標示,不能因為選了同一段期間,就把它們當成同一批工作。

目前回報若缺可靠日期,我不替它補造時間,也不讓它假裝受事件日期控制。操作時,我會逐圖確認來源、日期欄位及控制範圍,而不是只看畫面上的日期選擇是否改變。

6. 同名欄位,不一定能共用控制項

設備下拉選單又有另一個限制:兩個來源都把欄位叫作「設備」,不代表同一個控制就能篩選它們。

官方文件指出,一般篩選控制依欄位 ID 運作,顯示名稱相同,ID 仍可能不同。必要時可以在報表層覆寫 ID,但共用 ID 的欄位必須具有相同型別;修改正在使用的 ID,也可能讓原有圖表需要重新選取欄位。

我會先確認欄位是否真的代表相同設備,再處理設定。沿用既有設計,N201 對應 Q17;N202、N203 沒有可靠設備關聯,就不能替它們補上 Q17,也不能靠覆寫 ID 建立不存在的關係。日期控制與設備下拉選單的運作方式不同,兩者都需要各自驗收。

7. 逐圖驗收每一種範圍

控制項能操作,只代表畫面接受了選擇。我規劃切到查看模式,逐一測試以下情況,並與相同定義的 SQL 比較:

https://ithelp.ithome.com.tw/upload/images/20261011/20184297WcMToH6R0h.jpg

比較時還要固定資料截止時間,避免 SQL 查完後有新事件入表,卻被誤認為報表算錯。我會保留設定與數值對照,並確認標題能交代實際範圍;只有測試設計,還不能宣稱驗收完成。

時間與篩選的意義清楚後,下一個問題才浮現:告警總數可以在同範圍下核對,那麼「每台設備平均觸發次數」或「審核退回比例」,切換日期與設備後,分子、分母是否也會正確重算?

參考資料

  1. Date functions
  2. DATETIME_TRUNC
  3. Time series reference
  4. Date range control
  5. Filter across data sources

上一篇
Day 26|資料進了 BigQuery,我如何讓儀表板上的每個數字都有定義?
下一篇
Day 28|公式可以儲存,我如何確認告警平均與審核比例沒有算錯?
系列文
從 Cloud 到 AI:GCP 雲端資料與 AI 實戰之路 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言